home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS20.ADF / BobEd / gadgets.c < prev    next >
C/C++ Source or Header  |  1989-01-27  |  3KB  |  78 lines

  1. #include <bobed.h>
  2.  
  3. /*
  4.    "gadgets.c"
  5.    this file defines the window gadgets used.
  6. */
  7.  
  8. struct Image colimage [COLORS];     /* color blocks at bottom of screen */
  9. struct Gadget colgad [COLORS];      /* gadgets corrisponding to above   */
  10. struct Gadget viewgad [OBS];        /* the nine actual size objects     */
  11.  
  12. VOID  makegads ()
  13. {
  14.    int    ii,xx,yy;
  15.    int    gwide=(WIDE > 320 ? 24 : 12); /* automatic resizing if hires */
  16.  
  17.    for (ii=0;ii<COLORS;ii++)  /* initialize the color select gadgets */
  18.    {
  19.       colimage[ii].LeftEdge  = 0;     /* the image is easy, it takes no */
  20.       colimage[ii].TopEdge   = 0;     /* data to define. PlaneOnOff tells */
  21.       colimage[ii].Width     = gwide; /* intiuition what planes to fill */
  22.       colimage[ii].Height    = GHIGH; /* where there is a zero in the   */
  23.       colimage[ii].Depth     = DEPTH; /* image data (everywhere). the   */
  24.       colimage[ii].ImageData = NULL;  /* result is PlaneOnOff = i gives */
  25.       colimage[ii].PlanePick = NULL;  /* us a block of color i.         */
  26.       colimage[ii].PlaneOnOff= ii;    /* isn't life easy?               */
  27.  
  28.       colgad[ii].NextGadget = (struct Gadget *)&colgad[ii+1];
  29.       colgad[ii].LeftEdge   = (LOFFSET+(3+gwide)*ii);
  30.       colgad[ii].TopEdge    = -30;  /* relative to bottom of screen */
  31.       colgad[ii].Width      = gwide;
  32.       colgad[ii].Height     = GHIGH;
  33.       colgad[ii].Flags      = GADGHBOX|GADGIMAGE|GRELBOTTOM; /* note GRELBOTTOM */
  34.       colgad[ii].Activation = RELVERIFY; /* do not select until released */
  35.       colgad[ii].GadgetType = BOOLGADGET;
  36.       colgad[ii].GadgetRender = (APTR)&colimage[ii];
  37.       colgad[ii].SelectRender = NULL;  /* no alternate image */
  38.       colgad[ii].GadgetText   = NULL;
  39.       colgad[ii].MutualExclude= NULL;
  40.       colgad[ii].SpecialInfo  = NULL;
  41.       colgad[ii].GadgetID   = ii;      /* our special ID is the color so  */
  42.       colgad[ii].UserData   = NULL;    /* it is easy to find out wich gad */
  43.    }                                   /* was hit from the IDCMP          */
  44.  
  45.    colgad[15].NextGadget = (struct Gadget *)&viewgad [0]; /* link to next */
  46.  
  47. /* the view gadgets are a very interesting example of the versatility of
  48.    the gadget. each gadget is the same size as its respective object view
  49.    box but there is no image, so what we have is an invisible gadget that
  50.    will tell us when we hit that image but will not interfere with the
  51.    image underneath (above?) it.  Thanks C-A!
  52. */
  53.  
  54.    for (yy=0;yy<VBOBS;yy++)
  55.    {
  56.    for (xx=0;xx<HBOBS;xx++)
  57.    {
  58.       ii = yy*HBOBS+xx;
  59.       viewgad[ii].NextGadget = (struct Gadget *)&viewgad[ii+1];
  60.       viewgad[ii].LeftEdge   = (HWIDE-1+(BWIDE*16+1)*xx+(HWIDE-BWIDE*HBOBS*16)/HBOBS*xx);
  61.       viewgad[ii].TopEdge    = (TOFFSET-1+(BHIGH+1)*yy+(HIGH-TOFFSET-BOFFSET-BHIGH*VBOBS)/VBOBS*yy);
  62.       viewgad[ii].Width      = BWIDE*16+2;
  63.       viewgad[ii].Height     = BHIGH+2;
  64.       viewgad[ii].Flags      = GADGHBOX;
  65.       viewgad[ii].Activation = RELVERIFY;
  66.       viewgad[ii].GadgetType = BOOLGADGET;
  67.       viewgad[ii].GadgetRender = NULL; /* no image (invisible gadget :-)) */
  68.       viewgad[ii].SelectRender = NULL;
  69.       viewgad[ii].GadgetText   = NULL;
  70.       viewgad[ii].MutualExclude= NULL;
  71.       viewgad[ii].SpecialInfo  = NULL;
  72.       viewgad[ii].GadgetID   = VIEWBASE+ii;
  73.       viewgad[ii].UserData   = NULL;
  74.    }
  75.    }
  76.    viewgad[OBS-1].NextGadget = NULL; /* no more gadgets */
  77. }
  78.